An adaptive model reference flight control loop is shown in FIG. 1. The flight control loop responds to a scalar reference input r provided by an external guidance system (not illustrated) or from guidance commands from a pilot. For example, an external guidance system may command a climb of a certain number of feet per second and scale input r accordingly. Aircraft 10 includes a set of actuators 15 that operate control surfaces on the aircraft in response to reference input r. In response to the actuation of the control surfaces, aircraft 10 will possess a certain state as measured by sensors 20, denoted by a state vector x. State vector x would include, for example, pitch, roll, and other standard sensor measurements. Similar measurements are provided by a reference model 50 for aircraft 10. Reference model 50 receives reference input r and generates a reference state xref for aircraft 10 that would be expected in response to the flight control loop receiving reference input r.
An adaptive control system receives an error signal representing the difference between state vector x and reference state xref and provides a linear feedback/feedforward input command ulin. It may be shown that ulin is a function of the sum of the product of a state gain kx and the state vector x and the product of a reference gain kr and the scalar reference input r. Responsive to the measurement of vector x and a scalar reference input r, a baseline or nominal controller 30 generates a nominal control signal 35, ulin-nominal. Unlike the adaptive gains used to form ulin, ulin-nominal is the sum of the product of a static gain kx0 and the state vector x and the product of a static gain kr0 and the scalar reference input r. In that regard, a control loop topology could be constructed as entirely adaptive without any nominal control component such as baseline controller 30. However, the nominal control component will assist to “point in the right direction” such that the adaptive control may more quickly converge to a stable solution.
An input command uc is formed from the summation of ulin and ulin-nominal. Responsive to the input command uc, the appropriate control allocations amongst the various control surfaces are made in control allocation act 40 to provide commands to actuators 15. In turn, actuators 15 implement actual input command u. Under normal conditions, u and uc should be very similar or identical. However, there are limits to what control surfaces can achieve. For example, an elevator or rudder may only be deflectable to a certain limit. These limits for the various control surfaces may be denoted by an input command saturation limit, umax. Thus, u can not exceed umax or be less than −umax. If uc exceeds umax, u will be saturated at limit umax.
Conventional linear control such as that shown in FIG. 1 is typically fairly robust to small modeling errors. However, linear control techniques are not intended to accommodate significant unanticipated errors such as those that would occur in the event of control failure and/or a change in the system configuration resulting from battle damage. A common characteristic of conventional adaptive control algorithms is that physical limitations are encountered such as actuator displacement and rate limits such that u becomes saturated at umax or −umax. This input saturation may lead to instability such that the aircraft crashes.
Although described with respect to a flight control system, many other types of adaptive control systems share this problem of input saturation. Accordingly, there is a need in the art for improved adaptive control techniques that explicitly accounts for and has the capability of completely avoiding input saturation.